import { defineStore } from "pinia"

//选项式API
// export let useNumStore = defineStore('num', {
//     //数据存储
//     state() {
//         //从浏览器本地存储获取数据
//         let nums = JSON.parse(localStorage.getItem('nums') as string) || { num1: 0, num2: 0, num3: 0 }
//         return {
//             num1: nums.num1,
//             num2: nums.num2,
//             num3: nums.num3
//         }
//     },
//     //响应函数
//     actions: {
//         changeNum3(value: number) {
//             console.log('this：', this)
//             this.num3 += value
//         }
//     },
//     //计算函数
//     getters: {
//         bigNum1(): number {
//             return this.num1 * 10
//         }
//     }
// })

//组合式API
import { ref, computed } from 'vue'
export let useNumStore = defineStore('num', () => {
    //数据
    //从浏览器本地存储获取数据
    let nums = JSON.parse(localStorage.getItem('nums') as string) || { num1: 0, num2: 0, num3: 0 }
    let num1 = ref(nums.num1)
    let num2 = ref(nums.num2)
    let num3 = ref(nums.num3)
    //计算属性
    let bigNum1 = computed(() => num1.value * 10)
    //方法
    function changeNum3(value: number) {
        num3.value += value
    }
    //向外部提供属性
    return { num1, num2, num3, bigNum1, changeNum3 }
})